package com.cn.wanxi.service.impl;

import com.cn.wanxi.dao.HomeDao;
import com.cn.wanxi.dao.NewsDao;
import com.cn.wanxi.dao.impl.HomeImpl;
import com.cn.wanxi.dao.impl.NewsImpl;
import com.cn.wanxi.dto.HomeModelDto;
import com.cn.wanxi.model.*;
import com.cn.wanxi.service.IHomeService;

import java.util.List;

/**
 * 需要去查询HomeModel里面的值
 * 1.公司信息
 * 2.产品信息
 * 3.导航信息
 * 4.新闻信息
 */
public class HomeServiceImpl implements IHomeService {
    private HomeDao homeDao = new HomeImpl();//能不写全局变量的就不写

    /**
     * 因为我们这里是逻辑层，所以我们需要将所有取得的值封账到model
     * 这里需要查询至少四张表，所以我们这里至少写四个方法
     * 需要用到面向对象，设计模式的六大原则
     * 第一大原则就是单一职责（一个类里面写相同的内容，一个方法里面写相同内容）
     * 这个类就是查询HomeModel，同时，我们这个方法需要查询四张表，所以要写四个方法
     *
     * @return
     */
    public HomeModelDto getHomeModel() {
        HomeModelDto homeModelDto = new HomeModelDto();
        homeModelDto.setNewsModelList(getNewsModelList());
        homeModelDto.setProductModelList(getProductModelList());
        return homeModelDto;
    }



    private List<NewsModel> getNewsModelList() {
        NewsDao newsDao = new NewsImpl();
        return newsDao.getNewsModelForHome();
    }

    private List<ProductModel> getProductModelList() {
        return homeDao.getProductModelList();
    }

}
